package main

/**
 * @Author: DengLibin
 * @Date: Create in 2023-01-11 15:10:53
 * @Description: 给你一个整数 n，请你判断该整数是否是 2 的幂次方。如果是，返回 true ；否则，返回 false 。
 */

/**
 * @Author: DengLibin
 * @Date: Create in 2023-01-11 15:11:23
 * @Description:
 */
func isPowerOfTwo(n int) bool {
	if n == 1 {
		return true
	}
	x := 1
	for i := 0; ; i++ {
		x *= 2
		if x == n {
			return true
		}
		if x > n {
			return false
		}
	}
}

/**
 * @Author: DengLibin
 * @Date: Create in 2023-01-11 15:11:57
 * @Description: 使用位运算 2的幂的数 二进制 首位是1 其他是0
 */
func isPowerOfTwo2(n int) bool {

	return n > 0 && n&(n-1) == 0
}
